# 马丁策略:
#（已投入资金/平均净值+当日加注资金/当日净值）*（当日净值*(1+0.03)) > （已投入资金+当日加注资金）*（1+0.01）
# (x1/y1 + x2/y2)*(y2*(1+0.03)) > (x1+x2)*(1+0.01)
# (x1/y1 + x2/y2)*(y2*(1+Z1)) > (x1+x2)*(1+Z2)

# 算上手续费
#（已投入资金/平均净值+当日加注资金/当日净值）*（当日净值*(1+0.03)) > （已投入资金+当日加注资金）*（1+0.025）

def Martin_strategy(X1, Z1, Z2, y1, y2):
    # 求当日加注资金
    return (X1*(1+Z1) - X1/y1*y2*(1+Z1))/(Z1-Z2)

print(Martin_strategy(2000, 0.03, 0.01, 4.0, 1.0))


# 开盘时机：-0.03
# 买入时机：-0.02
# 卖出时机：+0.03


# 逆马丁策略
#（已投入资金/平均净值+当日加注资金/当日净值）*（当日净值*(1-0.03)) < （已投入资金+当日加注资金）*（1+0.01）

def Martin_strategy_ni(X1, Z1, Z2, y1, y2):
    # 求当日加注资金
    return (X1*(1+Z1) - X1/y1*y2*(1+Z1))/(Z1-Z2)

print(Martin_strategy_ni(2000, 0.03, 0.01, 1.0, 1.2))